package com.dd.cloud.user.service.news;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.cloud.user.entity.news.AppPromotionNews;
import com.dd.cloud.user.req.news.AppPromotionNewsCreateReq;
import com.dd.cloud.user.req.news.AppPromotionNewsPageReq;
import com.dd.cloud.user.req.news.AppPromotionNewsUpdateReq;
import com.dd.cloud.user.res.news.AppPromotionNewsDetailRes;
import com.dd.cloud.user.res.news.AppPromotionNewsPageRes;

/**
 * @author Lx
 * @version 1.0
 * @date 2023/9/14
 */
public interface IAppPromotionNewsService extends IService<AppPromotionNews> {
    /**
     * 创建app消息推广记录
     *
     * @param req
     */
    void createAppPromotionNews(AppPromotionNewsCreateReq req);

    /**
     * 修改app消息推广记录
     *
     * @param req
     */
    void updateAppPromotionNews(AppPromotionNewsUpdateReq req);

    /**
     * 查询app消息推广记录
     *
     * @param req
     * @return
     */
    IPage<AppPromotionNewsPageRes> queryAppPromotionNewsPage(AppPromotionNewsPageReq req);

    /**
     * 修改app消息推广记录状态
     *
     * @param id
     * @param status
     */
    void updateAppPromotionNewsStatus(Integer id, Integer status);

    /**
     * 查询app消息推广记录详情
     *
     * @param id
     * @return
     */
    AppPromotionNewsDetailRes queryAppPromotionNewsDetail(Integer id);

    /**
     * 重新推送/立即推送消息
     *
     * @param id
     * @param type 1客户端调用 2程序内部调用
     */
    void reSendAppPromotionNews(Integer id, Integer type);

    /**
     * 消息推送收到数
     */
    void appPromotionNewsReceiveNum(Integer id, String cid);

    /**
     * 消息推送点击数
     */
    void appPromotionNewsClickNum(Integer id, String cid);
}
